Plasma Cash の DEX 活用
m0t0k1ch1.icon Plasma Cash に関する議論の中から DEX 活用に関する投稿をピックアップ
---.icon
実現手段
Assume I posted an order and someone trade against this order and hence sends his coin with AttackerID to me. In order to get the full possession of coin with AttackerID, I want to download all historical data and verify all merkle proofs that this received coin is legit. But what happens, if I can not download the data?
josojo:私が注文をし、その注文に対して取引を行う誰かが自分のコインの ID(Attacker ID とする)を私に送ってきたとする。Attacker ID を用いてコインの所有を確認するため、私は全ての履歴データをダウンロードし、受け取るコインの全ての Merkle proof が正しいことを検証したい。私がデータをダウンロードできなかった場合、何が起こる?
m0t0k1ch1.icon Plasma Cash において、ユーザーは基本的に自分のコインの履歴しか持っていないからこそ
m0t0k1ch1.icon これに対して danrobinson が以下のようにコメントしている
I imagine it would need to either be interactive (both parties need to agree to the trade before it’s executed, in which case they would both verify availability before signing the transaction for the trade) or facilitated by a semi-trusted third party (the chain operator is a good candidate, since they’d be able to pull off a data unavailability attack anyway), in which case that third party can verify the availability of the data and provide it to the users after the trade has cleared.
danrobinson:インタラクティブに行う(取引が発生する前に送り手と受け手が合意する必要があり、取引トランザクションに署名する前に両者が available かどうかを検証する)、もしくは semi-trusted なサードパーティ(どのみち data unavailability attack ができてしまうオペレータはその候補として適切)の手を借りる必要があると思う。後者の場合、サードパーティがデータが available かどうか検証し、取引が終わった後にその証明をユーザーに提供できる。
But thinking about it, there is a problem here—the operator could fulfill your trade and not give you any data at all about the completed transaction. You could force them to provide it by attempting to withdraw your offered coin, but if they submit an attempted withdrawal for the other coin before your attempted withdrawal, they can finish withdrawing it first, then provide the trade transaction to successfully challenge your withdrawal, thus getting both coins. So I take it back; I don’t think open-ended offers work. Only the interactive process works; you need to know what coin you’re trading with before you authorize the trade (so you know you can challenge any withdrawal of that coin). In which case you verify its history before you authorize the trade. (Although they might still double-spend it before the transaction hits the chain, so if the chain operator refuses to give you that data, you need to attempt a withdrawal to get certainty as to which coin you own.)
(semi-trusted なサードパーティも取引相手もオペレータである場合)
danrobinson:しかし、考えてみると問題がある。オペレータは取引を終えた後、完了したトランザクションに関するあらゆるデータをあなたに提供しないかもしれない。あなたは自分が差し出したコインを引き出そうとすることでデータの提供を強制することはできるが、オペレータはそれよりも先にもう一方のコインを引き出し、あなたの引き出しに対して challenge を成功させれば、両方のコインを得ることになる。前言撤回。このパターンは機能しないと思う。インタラクティブな方法だけが機能する。取引を認可する前に、取引しているコインについて知る必要がある(そうすれば、そのコインの引き出しに対して challenge することができる)。また、履歴の検証は取引を認可する前に行う(オペレータが取引よりも前に double spend していて、そのデータを提供することを拒んだ場合、自分のコインを引き出す必要がある)。
m0t0k1ch1.icon 取引トランザクションに関するデータが公開されなければ、もともとオペレータが保有していたコインに対して challenge を行うことはできないし、オペレータが取引で手にしたコインは普通に exit できてしまうのでマズいという話
---.icon
注文のマッチング
Its unclear how an exchange could use plasma cash without fungibility. If I want to buy size 3 but there are only sellers of size 2 and 5, there is no match. This implies we cannot write a matching engine that works as expected (ie price-time priority, etc)
bharathrao:fungibility のない Plasma Cash が、取引所によってどう利用されるのかわからない。3 トークン購入したいときに売られているのが 2 トークンと 5 トークンだったら、マッチするものがない。これは期待通りに動作するマッチングエンジン(価格と時間での優先順位づけなど)を実装できないことを意味する。
The idea is that most people would deposit with coins of a specified size, similar to existing real-world denominations (1, 2, 5, 10, 20, 50…)¸ and there would be specialized exchangers that can convert many small-denomination coins into larger-denomination coins.
vbuterin:特定のサイズのコインをデポジットさせるというアイデアはある。これは現実世界の通貨単位(1、2、5、10、20、50、など)と似たようなもので、いくつかの小さい単位のコインを大きい単位のコインに変換できる両替機にもなる。